// pages/cart/cart.js
Page({
    /*** 页面的初始数据*/
    data: {
        cart: [], //购物车数据
    },
    //增加
    add(e) {
        console.log(e);
        let index = e.currentTarget.dataset.index
        let {
            cart
        } = this.data
        cart[index].num++
        this.setCart(cart)
    },
    //减少
    minus(e) {
        console.log(e);
        let index = e.currentTarget.dataset.index
        let {
            cart
        } = this.data
        if (cart[index].num > 1) {
            cart[index].num--
        } else {
            return false
        }
        this.setCart(cart)

    },
    //单选-改变时，选中的会计算价格
    handeItemChange(e) {
        let index = e.currentTarget.dataset.index
        let {
            cart
        } = this.data
        cart[index].checked = !cart[index].checked

        this.setCart(cart)

    },
    //全选-取反，同时修改数据中每个单选的选中状态
    handleItemAllCheck() {
        let {
            cart,
            allChecked
        } = this.data
        allChecked = !allChecked
        cart.forEach(item => {
            item.checked = allChecked
        })
        this.setCart(cart)
    },
    // 设置购物车状态同时 重新计算 底部工具栏的数据 全选 总价格 购买的数量
    setCart(cart) {
        //价格计算
        let totalPrice = 0,
            totalNum = 0,
            allChecked = true
        //单选关联全选-当判断单选时，也要设置全选的状态
        cart.forEach(item => {
            if (item.checked == true) {
                totalPrice += item.num * item.goods_price
                totalNum += item.num
            } else {
                allChecked = false
            }
        })
        if (cart.length == 0) {
            allChecked = false
        }
        this.setData({
            cart,
            totalPrice,
            allChecked,
            totalNum
        })
        wx.setStorageSync('cart', cart)

    },
    /*** 生命周期函数--监听页面加载*/
    onLoad(options) {},

    /*** 生命周期函数--监听页面初次渲染完成*/
    onReady() {

    },

    /*** 生命周期函数--监听页面显示*/
    onShow() {// 获取缓存中的购物车数据，当页面显示时，数据就要更新
        let cart = wx.getStorageSync('cart') || []
        this.setCart(cart);
        // console.log(this.data.cart);
    },

    /*** 生命周期函数--监听页面隐藏 */
    onHide() {

    },

    /*** 生命周期函数--监听页面卸载*/
    onUnload() {

    },

    /*** 页面相关事件处理函数--监听用户下拉动作*/
    onPullDownRefresh() {

    },

    /*** 页面上拉触底事件的处理函数*/
    onReachBottom() {

    },

    /*** 用户点击右上角分享 */
    onShareAppMessage() {

    }
})